/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.zonacardio.servlest;

import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import com.zonacardio.entidad.Plan;
import com.zonacardio.entidad.Usuario;
import com.zonacardio.negocio.PlanN;
import com.zonacardio.utilidades.Tiempo;

/**
 *
 * @author USUARIO
 */
public class PlanServlet extends HttpServlet {

    /**
     * Processes requests for both HTTP <code>GET</code> and <code>POST</code> methods.
     * @param request servlet request
     * @param response servlet response
     * @throws ServletException if a servlet-specific error occurs
     * @throws IOException if an I/O error occurs
     */
    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        response.setContentType("text/html;charset=UTF-8");
        PrintWriter out = response.getWriter();
        String Codigo = request.getParameter("txtCodigo");
        String Descripcion = request.getParameter("txtDescripcion");
        String FechaCreacion = request.getParameter("txtFecha_Creacion");
        String Valor_Venta = request.getParameter("txtValor_Venta");
        String Usuariocreador = request.getParameter("txtUsuario_Creador");
        String Costo_Produccion = request.getParameter("txtCosto_Produccion");
        String Ganancia = request.getParameter("txtGanancia");
        String Cantidad_Dias = request.getParameter("txtCantidad_Dias");
        String Vigencia_Dias = request.getParameter("txtVigencia_Dias");
        String targetPage = "./Principal.jsp";
        request.setAttribute("target", "./FPrincipal.jsp");
        request.setAttribute("targetModulo", "./FPlan.jsp");
        PlanN negocioP = new PlanN();
        Plan entP = new Plan();
        request.setAttribute("ListaPlanes", null);
        String men ="";
        


        if ("Listar".equals(request.getParameter("action"))) {
            try {



                List<Plan> ListaPlan = negocioP.ListadoDePlanes();
                request.setAttribute("ListaPlanes", ListaPlan);
                List<Plan> ListaPlanes = negocioP.ListadoDePlanes();
                request.setAttribute("ListaPlanes", ListaPlanes);
                request.setAttribute("p", null);
                entP.setCodigo(negocioP.getConsecutivoPlan());
                entP.setUsuariocreador("");
                entP.setFechacreacion(Tiempo.getFecha());
                  request.setAttribute("p", entP);
                  request.setAttribute("mensaje", null);
            } catch (Exception ex) {
                Logger.getLogger(VentaServlet.class.getName()).log(Level.SEVERE, null, ex);
                request.setAttribute("mensaje", ex.getMessage());
            }
        }
        if ("guardar".equals(request.getParameter("action"))) {

           // if(Codigo.isEmpty()|| Descripcion.isEmpty() || Valor_Venta.isEmpty() || Usuariocreador.isEmpty() || Costo_Produccion.isEmpty() || Ganancia.isEmpty() || Cantidad_Dias.isEmpty() || Vigencia_Dias.isEmpty())
           // {
             //   men="todos los campos son obligatorios";
          //  }
          //  else
          //  {
                try {
                  men=  negocioP.insertPlan(Codigo, Descripcion, Valor_Venta, Costo_Produccion, Ganancia, FechaCreacion, Usuariocreador, Cantidad_Dias, Vigencia_Dias);
                    entP.setCodigo("");
                    entP.setDescripcion("");
                    entP.setValor("");
                    entP.setUsuariocreador(Usuariocreador);
                    entP.setCosto("");
                    entP.setGanancia("");
                    entP.setCantidaddias("");
                    entP.setVigenciadias("");
                    request.setAttribute("p", entP);
                    List<Plan> ListaPlan = negocioP.ListadoDePlanes();
                    request.setAttribute("ListaPlanes", ListaPlan);
                } catch (Exception ex) {
                    Logger.getLogger(PlanServlet.class.getName()).log(Level.SEVERE, null, ex);
                   men=""+ ex.getMessage();
                }
           // }
             request.setAttribute("mensaje", men);
        }
         if ("editar".equals(request.getParameter("action"))) {
            // UsuarioN negocioC = new UsuarioN();
            try {
                negocioP.updatePlan(Descripcion, Valor_Venta, Costo_Produccion, Ganancia, FechaCreacion, Usuariocreador, Cantidad_Dias, Vigencia_Dias, Codigo);
                request.setAttribute("p", entP);
                List<Plan> ListaPlanes = negocioP.ListadoDePlanes();
                request.setAttribute("ListaPlanes", ListaPlanes);
            } catch (Exception ex) {
                Logger.getLogger(VentaServlet.class.getName()).log(Level.SEVERE, null, ex);
                request.setAttribute("mensaje", ex.getMessage());
            }
        }



        if ("buscar".equals(request.getParameter("action"))) {

            try {
                entP = negocioP.getPlan(Codigo);
                request.setAttribute("p", entP);
                List<Plan> ListaPlanes = negocioP.ListadoDePlanes();
                request.setAttribute("ListaPlanes", ListaPlanes);
                request.setAttribute("ListaPlanes", null);
                request.setAttribute("ListaPlanes", ListaPlanes);

            } catch (Exception ex) {
                Logger.getLogger(PlanServlet.class.getName()).log(Level.SEVERE, null, ex);
                request.setAttribute("mensaje", ex.getMessage());
            }

        }
              if ("eliminar".equals(request.getParameter("action"))) {
            try {
                List<Plan> ListaPlan = negocioP.ListadoDePlanes();
                request.setAttribute("ListaPlanes", ListaPlan);
                List<Plan> ListaPlanes = negocioP.ListadoDePlanes();
                request.setAttribute("ListaPlanes", ListaPlanes);
                request.setAttribute("p", null);
                request.setAttribute("mensaje", null);
            } catch (Exception ex) {
                Logger.getLogger(VentaServlet.class.getName()).log(Level.SEVERE, null, ex);
                request.setAttribute("mensaje", ex.getMessage());
            }
        }


  
        request.getRequestDispatcher(targetPage).forward(request, response);

    }
    // <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">

    /**
     * Handles the HTTP <code>GET</code> method.
     * @param request servlet request
     * @param response servlet response
     * @throws ServletException if a servlet-specific error occurs
     * @throws IOException if an I/O error occurs
     */
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        processRequest(request, response);
    }

    /**
     * Handles the HTTP <code>POST</code> method.
     * @param request servlet request
     * @param response servlet response
     * @throws ServletException if a servlet-specific error occurs
     * @throws IOException if an I/O error occurs
     */
    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        processRequest(request, response);
    }

    /**
     * Returns a short description of the servlet.
     * @return a String containing servlet description
     */
    @Override
    public String getServletInfo() {
        return "Short description";
    }// </editor-fold>
}




